package com.sxhuayuan.parking.service;

import com.sxhuayuan.parking.compenent.Page;
import com.sxhuayuan.parking.compenent.Pageable;
import com.sxhuayuan.parking.entity.Agent;
import com.sxhuayuan.parking.entity.ParkingLotUser;

/**
 * 车场用户service层
 * @author 何龙
 * @create 2019-04-19 10:40
 */
public interface ParkingLotUserService extends BaseService<ParkingLotUser, Long> {
	/**
	 * 根据用户名查询用户信息
	 * 
	 * @param username
	 *            用户名
	 * @return 用户信息
	 */
	ParkingLotUser findByUsername(String username);

	/**
	 * 判断用户名是否存在
	 *
	 * @param username
	 *            用户名(忽略大小写)
	 * @return 用户名是否存在
	 */
	boolean usernameExists(String username);

	/**
	 * 获取当前登录用户
	 *
	 * @return 当前登录车场用户,若不存在则返回null
	 */
	ParkingLotUser getCurrent();

	/** 分页查询 */
	Page<ParkingLotUser> findPage(Pageable pageable);

	/** 分页查询,代理 */
	Page<ParkingLotUser> findPage(Pageable pageable, Agent agent);

	/** 锁定启用 */
	void onIsLockedAndEnabled(Long id, String type, Boolean value);
}
